<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
       
        // 2.配置参数创建对象
        // 对象的属性 是可控制的。
        // var obj = Object.create(null,{
        //         name:{
        //             value:"张三",
        //             writable:true,  // 配置对象属性可写 ；
        //             enumerable:true,  // 可枚举 是否可以被循环
        //             configurable:true // 可配置 删除对象属性
        //         },
        //         age:{
        //             value:20,
        //             writable:true,
        //             enumerable:true,
        //             configurable:true
        //         }
        // })
        // console.log(obj);
        // writable：是否可写；默认不可写；
        // obj.name = "李四";
        // console.log(obj);

        // enumerable : 是否可以循环 ,默认是false 不可枚举，不可循环

        // for(var key in obj){
        //     console.log(key);
        // }

        // configurable : 是否可配置 ，默认是false 不可配置 删除属性 ；

        // delete obj.name;
        // console.log(obj);


        // 3.通过存储器来配置 对象

        var obj = Object.create(null, {
            name: {
                // getter
                get: function () {
                    console.log("调用了get函数");
                    // 获取属性值的时候 自动调用get方法
                    return "张三";
                },
                // setter
                set: function (newvalue) {
                    // 设置属性的时候会自动调用set方法
                    console.log("修改了", newvalue)
                },
                configurable: true,
                enumerable: true
            }
        })
        // console.log(obj);
        // obj.name;  // 获取name值 ，调用get函数
        setTimeout(function () {
            obj.name = "李四"; // 设置name的值 ；调用set 函数
        }, 2000);

    </script>
</body>

</html>